home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / comp0_89.lha / Feel / Boot / Compiler / scan-args.em~ < prev    next >
Lisp/Scheme  |  1993-07-03  |  630b  |  29 lines

  1. ;; arglist scanner
  2. ;; lets hope that this is compiled!
  3. (defmodule scan-args
  4.   ((except (scan-args) eulisp0))
  5.  
  6.   ()
  7.   (defun scan-args (arg lst default)
  8.     (cond ((null lst) default)
  9.       ((eq (car lst) arg) (car (cdr lst)))
  10.       (t (scan-args arg
  11.             (cdr (cdr lst))
  12.             default))))
  13.  
  14.   (defun map-initargs (fn lst)
  15.     (cond ((null lst)
  16.        nil)
  17.       (t (cons (fn (car lst) (car (cdr lst)))
  18.            (map-initargs fn (cdr (cdr lst)))))))
  19.  
  20.   (defun fold-initargs (fn lst start)
  21.     (if (null lst)
  22.     nil
  23.       (fold-initargs fn (cdr (cdr lst) )
  24.              (fn (car lst) (car (cdr lst)) start))))
  25.  
  26.   (export scan-args map-initargs fold-initargs)
  27.  
  28. )
  29.